home *** CD-ROM | disk | FTP | other *** search
- 10 .ba 49152 ;programmstart
- 20 .gl irqvec = $0314 ;irq-vektor
- 30 .gl irqalt = $ea31 ;alte irq-routine
- 40 .gl vic = $d000 ;basisadresse des vic
- 50 .gl irqmask= vic+26 ;irq-maskenregister
- 60 .gl irqflag= vic+25 ;irq-requestregister
- 70 .gl raster = vic+18 ;rasterzeilenregister
- 80 .gl border = vic+32 ;rahmenfarbe-register
- 90 .gl oben = 100 ;obere rasterzeile
- 100 .gl unten = 200 ;untere rasterzeile
- 110 .gl hibit = vic+17 ;bit 8 der rasterzeilennummer
- 120 ;
- 200 init sei;irq sperren
- 210 lda#oben;irq fuer rasterzeile 100
- 220 staraster
- 230 ldahibit;bit 8 loeschen
- 240 and#127
- 250 stahibit
- 260 lda#129;irq maskieren
- 270 stairqmask;raster-irq
- 280 lda#<(irqneu);irq-vektor auf neue
- 290 ldx#>(irqneu);irq-routine stellen
- 300 stairqvec
- 310 stxirqvec+1
- 320 cli;irq wieder zulassen
- 330 rts;und zurueck...
- 340 ;
- 350 deinit sei;irq sperren
- 360 lda#0;alle bits im masken-
- 370 stairqmask;register loeschen
- 380 lda#<(irqalt);vektor auf alte
- 390 ldx#>(irqalt);irqroutine stellen
- 400 stairqvec
- 410 stxirqvec+1
- 420 cli;irq wieder zulassen
- 430 lda#14;normale rahmenfarbe
- 440 staborder;einstellen
- 450 rts;und zurueck...
- 460 ;
- 470 irqneu ldairqflag;vic-irq-flags lesen
- 480 stairqflag;und wieder schreiben
- 490 bmivicirq;wenn bit 7 gesetzt, dann vicirq
- 500 jmpirqalt;sonst zur alten irq-routine
- 510 ;
- 520 vicirq ldaraster;rasterzeilenregister lesen
- 530 cmp#unten;groesser/gleich 200 ?
- 540 bcsoldcolor;ja, dann alte ramenfarbe
- 550 ;
- 560 newcolor lda#6;sonst neue rahmenfarbe
- 570 staborder
- 580 lda#unten;naechster irq bei zeile 200
- 590 staraster
- 600 ;
- 610 irqreturn pla;register zurueckholen
- 620 tay
- 630 pla
- 640 tax
- 650 pla
- 660 rti;und mit rti zurueck...
- 670 ;
- 680 oldcolor lda#14;alte ramenfarbe
- 690 staborder
- 700 lda#oben;naechster irq bei zeile 100
- 710 staraster
- 720 jmpirqreturn;und irq beenden...
- 60000 .en
-